package screen;

import game.FontLoader;
import java.util.ArrayList;
import org.newdawn.slick.TrueTypeFont;

public class BoxTexto extends ObjetoTela {

    private Box box;
    private String[] linhas;
    private TrueTypeFont fonte;

    public BoxTexto(int x, int y, int w, String texto) {
        super(x, y);
        int width = w - 10;
        int pos = 0;
        String txt = "";
        ArrayList<String> lns = new ArrayList<>();
        fonte = FontLoader.TEXT;
        while (pos < texto.length()) {
            if (fonte.getWidth(txt + texto.charAt(pos)) <= width)
                txt += texto.charAt(pos);
            else {
                lns.add(txt);
                txt = "" + texto.charAt(pos);
            }
            pos++;
        }
        if (!txt.isEmpty())
            lns.add(txt);
        this.linhas = lns.toArray(new String[lns.size()]);
        this.box = new Box(x, y, w, 10 + this.linhas.length * (fonte.getLineHeight() + 4));
    }

    @Override
    public void desenhar() {
        box.desenhar();
        for (int i = 0; i < linhas.length; i++)
            fonte.drawString(x + 5, y + 5 + i * (fonte.getLineHeight() + 4), linhas[i]);
    }
}
